/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controladores;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import builder.IngredienteModeloBuilder;
import builder.ModeloDirector;
import modelos.ModeloDB;
import modelos.ModeloIngrediente;
import vistas.VistaIngrediente;

/**
 *
 * @author usuario
 */
public class ControladorIngrediente implements  ActionListener{

    private VistaIngrediente vista;
    private ModeloIngrediente modelo;
    private IngredienteModeloBuilder builder;
    private ModeloDirector director;

    public ControladorIngrediente(VistaIngrediente vista) {
        this.vista = vista;
        vista.addListener(this);
        builder = new IngredienteModeloBuilder();
        director = new ModeloDirector();
        director.setModeloBuilder(builder);
    }


    public void actionPerformed(ActionEvent ae) {
        System.out.println(ae.getActionCommand());
        if(ae.getActionCommand().equals("Registrar")){
                if(vista.validarCodigoVacio() && vista.validoNumeros()){
            builder.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
            builder.setDescripcion(vista.getTxtDescripcion().getText());
            builder.setEstatus("A");
            builder.setStock(Float.parseFloat(vista.getTxtStock().getText()));
            director.construirModelo();
            modelo= (ModeloIngrediente)director.getModelo();
            if(modelo.registrar()){
                vista.mostrarMensaje("Ingrediente registrado exitosamente");
            vista.limpiar();
            }
            else
                vista.mostrarMensaje("El codigo o la descripcion ya se encuentra registrada");
        }

        }
        else if(ae.getActionCommand().equals("Buscar")){
             if(vista.validarCodigoVacio()){
            	 builder.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
            	 director.construirModelo();
                 modelo= (ModeloIngrediente)director.getModelo();        
            	 if(modelo.consultar()){
            		 vista.getTxtDescripcion().setText(modelo.getDescripcion());
            		 vista.getTxtStock().setText(""+modelo.getStock());
            		 vista.mostrar();
            	 }
            	 else
            		 vista.mostrarMensaje("EL codigo no esta registrado");

    }
        }
        else if(ae.getActionCommand().equals("Salir")){
            vista.setVisible(false);
            vista.limpiar();
        }
        else if(ae.getActionCommand().equals("Actualizar")){
            if(vista.validarCodigoVacio() && vista.validoNumeros()){
            builder.setCodigo(Integer.parseInt(vista.getTxtCodigo().getText()));
            builder.setDescripcion(vista.getTxtDescripcion().getText());
            builder.setEstatus("A");
            builder.setStock(modelo.getStock()+Float.parseFloat(vista.getTxtComprada().getText()));
            director.construirModelo();
            modelo= (ModeloIngrediente)director.getModelo();        
            if(modelo.actualizar()){
                vista.mostrarMensaje("Ingrediente actualizado exitosamente");
            vista.limpiar();
            }
        }
            vista.limpiar();
        }
        else{
            vista.limpiar();
        } 
    }

}
